package ar.com.larreta.vista.client;

import com.extjs.gxt.ui.client.event.ButtonEvent;
import com.extjs.gxt.ui.client.event.SelectionListener;
import com.extjs.gxt.ui.client.widget.Status;
import com.extjs.gxt.ui.client.widget.button.Button;
import com.extjs.gxt.ui.client.widget.toolbar.SeparatorToolItem;
import com.extjs.gxt.ui.client.widget.toolbar.ToolBar;

public class BarraHerramientas extends ToolBar {
	
	public final static Integer ANCHO_ESTADO = 45;
	
	private ABM abm;
	private Button botonConfirmar;
	private Button botonCancelar;
	private Status estadoEtiqueta = new Status();
	private Status estadoMensaje = new Status();
	private Status zonaCentral = new Status();
	
	public BarraHerramientas(ABM abm, Integer ancho, Integer largo){
		setSize(ancho, largo);
		this.abm = abm;
		
		botonConfirmar = getBotonConfirmar();
		botonCancelar = getBotonCancelar();
		
		estadoEtiqueta.setText(Mensajes.getInstancia().get("msg.barra.estado"));
		estadoEtiqueta.setWidth(ANCHO_ESTADO);
		
		estadoMensaje.setText(abm.getEstado().getTexto());
		estadoMensaje.setWidth(ANCHO_ESTADO);

		
		zonaCentral.setWidth(ancho - botonConfirmar.getWidth() - botonCancelar.getWidth() - estadoEtiqueta.getWidth() - estadoMensaje.getWidth() - 250);
		
		add(botonConfirmar);
		add(botonCancelar);

		add(new SeparatorToolItem());
		add(zonaCentral);
		add(new SeparatorToolItem());		
		
		add(estadoEtiqueta);
		add(estadoMensaje);
		
	}
	
	public Status getEstadoEtiqueta() {
		return estadoEtiqueta;
	}

	public Status getEstadoMensaje() {
		return estadoMensaje;
	}

	public void cambiarEstado(Estado estado){
		estadoMensaje.setText(estado.getTexto());
	}

	public Button getBotonCancelar(){
		Button botonCancelar = new Button(Mensajes.getInstancia().get("msg.cancelar"));
		botonCancelar.addSelectionListener(new SelectionListener<ButtonEvent>() {
			@Override
			public void componentSelected(ButtonEvent ce) {
				abm.cancelando();
				abm.limpiar();
			}
		});
		return botonCancelar;
	}

	public Button getBotonConfirmar(){
		Button boton = new Button(Mensajes.getInstancia().get("msg.ok"));
		boton.addSelectionListener(new SelectionListener<ButtonEvent>() {
			@Override
			public void componentSelected(ButtonEvent ce) {
				abm.confirmando();
			}
		});
		return boton;
	}
	
}
